perm filename REPORT.TXT[DOC,CSR]3 blob sn#241716 filedate 1976-10-15 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00018 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00003 00002	INTRODUCTION
C00005 00003	How to get started
C00008 00004	The dialog begins
C00015 00005	[Example UPDATE session.]
C00035 00006	[Example of an ORDERING session.]
C00045 00007	[Example of a session with RECEIVE.]
C00053 00008	[Example of MAILing reports.]
C00069 00009	[Finally, the last subsystem: SEND.]
C00081 00010	[Finishing a session.]
C00087 00011	How to print mailing labels
C00089 00012	Files used by the system (general information)
C00093 00013	ADDFIL.DSK
C00098 00014	ORDERS.JAN, ORDERS.FEB, etc.
C00100 00015	ONHAND.DSK
C00106 00016	Here is what appeared on LABELS.TMP after the sample dialog:
C00109 00017	And here are the first invoices written onto INVOIC.TMP:
C00116 00018	File BILLS.TMP after that dialog contains similar but more varied invoices:
C00125 ENDMK
C⊗;
INTRODUCTION

The Computer Science Report Distribution System (wow) is a collection of
computer programs intended to automate many of the tasks associated with
our departmental reports.

The present document explains how to use the system. If any questions
come up that aren't answered here, it would be a good idea to fix this
document right away, so that eventually it will contain all the important
information about the system.

The first draft of the CSR system was written by William T. Colemen III
during the spring and summer of 1976. The second draft, on which the
present system is based, was written by D. E. Knuth during autumn l976.
How to get started

First you must log on, under the project/programmername `USE,CSR'.
You need to know the password for this; the files are protected against
the use of people who don't know the password. (Only a few authorized
users should know it at any time.)

Once logged in, type RUN REPORT<cr> to the monitor. (As usual, <cr> means
carriage return; the monitor will have previously typed "." at you.)

It will take about a minute or so for the program to get itself ready;
mainly it is reading the mailing list from the permanent file ADDFIL.DSK,
and this takes some time. As soon as it is ready, the program will say:

  CSREPORT system:  What can I do for you?

The best way to learn how to use the system is to study an example of
what goes on in a typical session. Therefore most of this instruction
manual is simply a transcript of a dialog that might once have taken place.

However, before we get into the dialog, it will be helpful to learn a few
basic conventions.  When you use the program, it asks questions and you
give the answers or instructions about what the machine should do.
If you don't know how to respond, simply type `?<cr>' and the program
will tell you what kinds of responses it is willing to understand at the
moment. In fact, whenever you give an unexpected reply--a question mark
is simply a special case of this general rule--you will be told what
the legal responses are.

Furthermore, you can almost always get further information by typing
HELP<cr> instead of answering the machine's question. Then it will try
to explain what you need to know, before answering the question again.

Now we are ready to look at the sample dialog. The user in this case
will ask for help, so comparatively little more needs to be said by way
of further explanation.

The dialog begins

[As stated on the previous page, we are now going to learn how to use
the system by reading a transcript of a session that might once have
taken place. You will usually be able to tell whether it is the computer
or the user talking, because the user is supposed to speak only in
capital letters, while the computer has a lot more freedom.
Whenever there is something important to say that is not part of the
actual dialog, it will be enclosed in brackets, like this paragraph is.]

[You will recall that the user has typed RUN REPORT and is waiting for
the program to get ready for business. Finally it is ready and it says:]

  CSREPORT system:  What can I do for you? help

[Whoops, the user forget to set the SHIFT LOCK on his or her typewriter...
possibly because the writer of this manual forgot to tell him or her to
do that on page 3. Therefore the answer was `help' instead of `HELP' --
and computers being what they are, this message was unexpected. So it is
treated just as if it were `?', and the machine responds like this:]

?The responses I can understand at this point are:
UPD...,ORD...,REC...,MAI...,SEN...,
or <cr> (to get out of this loop),
or HELP<cr> (for more information).

  CSREPORT system:  What can I do for you? HELP

[So, you see, after it tells you the responses it expects, it asks the
same question over and over again. With infinite patience. If the reply
had been (lower case) `help' again, the same cycle would have repeated. Now,
however, the user noticed that capital letters are wanted, and said (upper
case) HELP. Here is what the machine replied then:]

Hello, this is your friendly CSREPORT system.
There are five kinds of things I am programmed to do for you:
	UPDATE	Look at and perhaps change the mailing list.
	ORDER	File away any orders that have been received
		for a given month's list.
	RECEIVE	Record payments received, or adjust accounts.
	MAIL	Prepare mailing labels and/or invoices and
		bills of lading for everyone that has ordered
		reports from a given month's list.
	SEND	Prepare invoices for isolated back-order requests,
		including orders from people not on the mailing list.
When I ask, `What can I do for you?', just type the first three letters
of one of these functions and hit carriage RETURN <cr>. (You can also
type more than three letters if you want to.) The user's manual, which
contains more information, is file REPORT.TXT[DOC,CSR].

  CSREPORT system:  What can I do for you? UPDATE

[OK, you see how helpful it was? It described the five main divisions
of the system. We will learn these five divisions in that same order,
in future sections of this document.  But first, notice that the machine
patiently came back to the same question again. How are we ever going
to get out of the rut? Obviously, one way is to answer the question,
as was done here by typing `UPDATE' (and then <cr>; all messages to this
system end with <cr>). ]

[If you look back at how the computer responded to the first (lower case)
call for `help', you will notice that it is waiting for any reply that
begins with the letters UPD or ORD or REC or MAI or SEN; those are the
expected answers, and anything you type after these letters is immaterial.
In this case the user said UPDATE because he or she thought that UPD 
didn't sound as nice.]

[That first response to `help' also mentioned another way to reply, namely
to type <cr> alone.  This is another important convention of the system:
When it asks you a question, you don't have to answer it, instead you
simply hit <cr>. Then the program will go on to something else, "one level
out" from what it was doing. For example, if the user had just hit <cr> at
this point, the program would simply have stopped everything; this is the way
to tell it you are done. We will see many examples of this <cr> convention
as we read on.  But now turn the page and see what happened next.]
[Example UPDATE session.]

[You will recall that the user had just typed `UPDATE'; the machine
now responds by entering its UPDATE function:]

UPDATE: INS, DEL, MOD, or LOOK? HELP

The UPDATE routine should be used to make all changes to the
address file, since editing with E is risky. To insert a new entry,
type INS and follow instructions. To modify an existing entry, type
MOD and see what happens.  To delete an entry, type DEL (but don't delete
anybody who has orders outstanding on some ORDERS file -- it's best to
delete only after MAILing all orders).  To simply look at an entry,
type LOOK.  Type only <cr> when you want to quit updating.

UPDATE: INS, DEL, MOD, or LOOK? MOD

[You see, the user asked for HELP again, and this time another kind of
help was proffered. When the question was re-asked, the user decided
to try doing a MODification of some entry in the mailing list.]

[Pretty soon you're going to be able to read this dialog without me 
butting in so often; in fact, I'm going to confine myself mostly
to elaboration of things that aren't obvious, from now on. We can
let the machine and its user run the show as we eavesdrop:]

Type hashcode of entry to be modified: #HELP

I am going to try to identify an addressee for you. Type the
five-character hash code if you know it, or type 99999 if the
addressee is not on our mailing list and not being inserted into it.
If you don't know the hash code, type XXXXX and I will try a name search
of the whole file. If you type just <cr> now, I will go on to something
else. Since hash codes sometimes change, you should doublecheck the
addressee name I find in case it is the wrong person.

Type hashcode of entry to be modified: #IDMNE
Is the name JOHN G. HERRIOT? (Y or N) Y

[Here the user typed the final `Y'. Whenever the program wants you to
identify somebody in the mailing list, it always goes through this ritual,
first asking for the hashcode, then asking you to confirm the name after
it has been found. In this case, the user wishes to modify Prof. Herriot's
address, since he has just gone away on sabbatical; and the first step has
been accomplished successfully, having found him in the old file. At this
point the program will display the entry which is to be modified:]

LINE 1: JOHN G. HERRIOT
LINE 2: POLYA 261
Type number of a line to be changed (1 to 3),
	or <cr> if modifications are complete: 2

[The computer typed all this except the final `2', which was given by the
user.]

New line 2: GEERENSTRASSE 23

[Here the computer typed `New line 2: ' and the user typed GEERENSTRASSE 23<cr>.]

Type number of a line to be changed (1 to 3),
	or <cr> if modifications are complete: 3

[Note that the machine allows the user to change line 3 even though Herriot's
former entry consisted only of lines 1 and 2; an address can grow up to five
lines long in this way.]

New line 3: CH-8044 GOCKHAUSEN
Type number of a line to be changed (1 to 4),
	or <cr> if modifications are complete: 4
New line 4: SWITZERLAND
Type number of a line to be changed (1 to 5),
	or <cr> if modifications are complete: 

[Here the user typed simply <cr>, indicating that the modification was now
completely specified.]

I deduce that the ZIP code or country is SWITZ;
	if not, please reject this and try again.

[Whenever the user modifies the last line of an address, the machine will
"deduce" the new zip code. Its deduction is based on the first five characters
following the final blank space on the last line.  The machine is concerned
about zip codes because the first three letters or digits of the hash code
agree with the first three letters or digits of the zip code; then when
it produces mailing labels in order by hash code, the labels are grouped
in a convenient manner. Since Herriot's previous zip code was `IDMAI',
indicating Stanford interdepartmental mail, he will get a new zip code and
a new hash code when he moves to Switzerland.]

Type the classification (C,F,N,M, or A), or type <cr> to reject this entry: HELP

Type <cr> to reject this entry and flush it; or type C<cr> for
normal entry, F<cr> for the free list, N<cr> for the ONR list, M<cr> for
the ARPA list, A<cr> for the `automatic' list.
Type the classification (C,F,N,M, or A), or type <cr> to reject this entry: F
Hashcode changed from #IDMNE to #SWINE.
OK, the modification has been made.

[Hashcodes are conventionally preceded by a # in this system. Notice that some
hashcodes turn out by coincidence to be a pronounceable five-letter combination;
this is not intended to reflect on the character of anybody on the mailing list,
and we hope that no truly embarrassing five-letter words emerge. Herriot's
new one is hopefully as bad as they will get. Anyway he retains his F status
(free reports), naturally, being a faculty member of our department even
though he is on leave.  Now that the modification has been made, the computer
comes back with another question:]

UPDATE: INS, DEL, MOD, or LOOK? LOOK
Type hashcode of entry to be displayed: #SWINE
Is the name JOHN G. HERRIOT? (Y or N) Y
LINE 1: JOHN G. HERRIOT
LINE 2: GEERENSTRASSE 23
LINE 3: CH-8044 GOCKHAUSEN
LINE 4: SWITZERLAND
hashcode=#SWINE,   category=F,   serial=421,
ordering history=NNNNNNNNNNN2,   current balance=$ .00

[The modification was indeed made as desired. LOOK is used to look at an
entry without changing it. Although Herriot's hash code has changed, his
`serial number' has not; everybody in the mailing list has a unique serial
number, which stays unchanged during modification.]

UPDATE: INS, DEL, MOD, or LOOK? LOOK
Type hashcode of entry to be displayed: #XXXXX
Sorry, that hashcode isn't in the file. What is the name? HELP

I am trying to identify an addressee for you. Type the name
or any part of the name, and I will show you all name lines in the file 
which contain that sequence of characters (including blank spaces in
the middle of the sequence, if you use them). Note that I will search
only the first line of each address on the mailing list.

Sorry, that hashcode isn't in the file. What is the name? YAO
Here are all the entries matching that name:
#207FH: PROF. YAOHAN CHU
#IDMFK: PROF. A. C. YAO
Type hashcode of entry to be displayed: #IDMFK

[Now the user wanted to check whether or not Andy and Frances Yao, who
have just joined our faculty, were already on the list. A search through
all names in the file showed that Andy was in, but not Frances. Sometimes
the machine may find no matching names at all; but sometimes it may find
so many, they don't all fit on your screen at once. In such a case, you
should hold down the CONTROL key on the typewriter and then hit the
BREAK key (upper left corner of the keyboard). This stops the typout of
names until you have a chance to read them and perhaps jot down the hashcode
you want. To start the machine again, hold CONTROL down and hit the CLEAR key.
Once you have seen the list of names, you go back to the hashcode loop
and resume as if no name search had taken place.]

Is the name PROF. A. C. YAO? (Y or N) Y
LINE 1: PROF. A. C. YAO
LINE 2: POLYA 
hashcode=#IDMFK,   category=F,   serial=1411,  IDMAIL,
ordering history=NNNNNNNNNNN0,   current balance=$ .00
UPDATE: INS, DEL, MOD, or LOOK? INS

[Now the user wants to insert a new entry, since Frances should be included:]

Type the new address, two to five lines long:
Line 1: PROF. F. FRANCES YAO
Line 2: HER OFFICE IS IN POLYA HALL, NEAR THE XEROX MACHINE

[It seems this user has a peculiar sense of humor, but by
typing such a foolishly long line he or she caused the machine to
display more of its repertoire of responses to unusual circumstances:]

That line was 17 characters too long for our mailing labels.
Please shorten it.
Line 2: HER OFFICE IS IN POLYA HALL, IDMAIL
That line was 1 character too long for our mailing labels.
Please shorten it.
Line 2: POLYA IDMAIL
Line 3: 

[OK, that version of Line 2 was short enough. Since Line 3 was blank
(the user just typed <cr> at this point), there is no point in
going on to Line 4).]

I deduce that the ZIP code or country is IDMAI;
	if not, please reject this and try again.
Type the classification (C,F,N,M, or A), or type <cr> to reject this entry: F
OK, I've inserted it; hash code is #IDMFS, serial number is 1412
UPDATE: INS, DEL, MOD, or LOOK? LOOK
Type hashcode of entry to be displayed: #FORGOT
Sorry, that hashcode isn't in the file. What is the name? YAO
Here are all the entries matching that name:
#207FH: PROF. YAOHAN CHU
#IDMFK: PROF. A. C. YAO
#IDMFS: PROF. F. FRANCES YAO
Type hashcode of entry to be displayed: #IDMFS
Is the name PROF. FRANCES F. YAO? (Y or N) Y
LINE 1: PROF. F. FRANCES YAO
LINE 2: POLYA 
hashcode=#IDMFS,   category=F,   serial=1412,  IDMAIL,
ordering history=NNNNNNNNNNN0,   current balance=$ .00
UPDATE: INS, DEL, MOD, or LOOK? DEL

[Now the subject has changed again. One of our customers from Australia
has asked to be removed from the mailing list:]

Type hashcode of entry to be deleted: #AUSKM
Is the name NICK KOMAROFF? (Y or N) Y
LINE 1: NICK KOMAROFF
LINE 2: PROFESSIONAL ENGINEER
LINE 3: 29 KENSAL ST.
LINE 4: MOOROOKA, QUEENSLAND 4105
LINE 5: AUSTRALIA
hashcode=#AUSKM,   category=C,   serial=34,
ordering history=NNNNNNNNNNN0,   current balance=$ .00
Do you really want to delete this? (Y or N) Y
OK, I did it.
UPDATE: INS, DEL, MOD, or LOOK? LOOK
Type hashcode of entry to be displayed: #AUSKM
Sorry, that hashcode isn't in the file. What is the name? 

[Here the user simply typed <cr>, so instead of doing a name search the
machine moves out one level:]

UPDATE: INS, DEL, MOD, or LOOK? MOD
Type hashcode of entry to be modified: #WIRTH
Sorry, that hashcode isn't in the file. What is the name? WIRTH
Here are all the entries matching that name:
#SWIFN: PROF. N. WIRTH
#454AC: MICHAEL C. WIRTH
Type hashcode of entry to be modified: #SWIFN
Is the name PROF. N. WIRTH? (Y or N) Y
LINE 1: PROF. N. WIRTH
LINE 2: E.T.H.
LINE 3: CLAUSIUSSTR. 55
LINE 4: CH-8092
LINE 5: ZURICH, SWITZERLAND
hashcode=#SWIFN,   category=C,   serial=616,
ordering history=NNNNNNNNNNN0,   current balance=$ .00

[Wirth and Herriot are exchanging houses this year. We gave Herriot
Wirth's home address, now we give Wirth Herriot's:]

Type number of a line to be changed (1 to 5),
	or <cr> if modifications are complete: 2
New line 2: 1302 CHANNING AVE.
Type number of a line to be changed (1 to 5),
	or <cr> if modifications are complete: 3
New line 3: PALO ALTO CA 94301
Type number of a line to be changed (1 to 5),
	or <cr> if modifications are complete: 4
New line 4:  
Type number of a line to be changed (1 to 4),
	or <cr> if modifications are complete: 5
Invalid line number.
Type number of a line to be changed (1 to 4),
	or <cr> if modifications are complete:

[This is the way addresses shrink to fewer lines. Since line 4 became blank,
it wasn't necessary for the user to try to blank out line 5, and he or she
didn't notice that the computer began to ask specifically for changes to 
lines 1 to 4 only.]

I deduce that the ZIP code or country is 94301;
	if not, please reject this and try again.
Type the classification (C,F,N,M, or A), or type <cr> to reject this entry: C
Hashcode changed from #SWIFN to #943FW.
OK, the modification has been made.

[The zipcode will be wrong if you hyphenate the country name or put it in
parentheses, etc. For East Germany, don't use DDR (GERMANY) or GERMAN
DEMOCRATIC REPUBLIC, since that leaves zip codes of (GERM and REPUB,
respectively; use GERMANY- DDR (including that space). In CANADA, always
put the word CANADA last, after the Canadian zip code if you know it.
Don't use U.K., use UNITED KINGDOM. And so on. Whenever you make a mistake,
the computer will `deduce' the wrong zip code, and you can recover without
putting the error into the file if you type <cr> without a classification
code.
If the classification code is A, N, or M, the US zip code will remain on
the last address line, and the assumed zip will be taken as AUTOM, ONRXX,
or DARPA, respectively. This causes people on those lists to be grouped
together in the output, as desired.]

UPDATE: INS, DEL, MOD, or LOOK? 

[Now the user has typed just <cr> to the UPDATE query. This means he is
done updating, he no longer wants to INS, DEL, MOD, or LOOK. If you
want to see what happened next, go on to the next page. But if you are
tired, why not rest for awhile first.]
[Example of an ORDERING session.]

[Our story so far: After an exciting discourse with the UPDATE subsystem,
our user has decided to stop updating. The next thing that the machine types is:]

  CSREPORT system:  What can I do for you? ?
?The responses I can understand at this point are:
UPD...,ORD...,REC...,MAI...,SEN...,
or <cr> (to get out of this loop),
or HELP<cr> (for more information).

  CSREPORT system:  What can I do for you? ORDER

[Yes, it's back to where we were before. But this time the idea is to process
some of the orders that just came in.]

For which month? HELP

The ORDERS subsystem is used to record orders received from a
given month's mailing list. You identify a person by his hashcode,
the system tells you his name, and when everything checks you 
say which reports he has ordered. For example, if he wants reports
1,9,A, and G, you can type 19AG or 1AG9, etc.  This information
is appended to the file ORDERS.XXX where XXX is JAN,FEB, ..., or DEC.

For which month? 8
?The responses I can understand at this point are:
JAN...,FEB...,MAR...,APR...,MAY...,JUN...,JUL...,AUG...,SEP...,OCT...,NOV...,DEC...,
or <cr> (to get out of this loop),
or HELP<cr> (for more information).
For which month? AUG
No orders on file for that month, I will create a new file.

[Here the machine has looked to see if there is a file called ORDERS.AUG.
Since there was no such file, it assumed that the information to be typed
in next represents the first orders to be recorded for August.]

Type hashcode of person ordering: #021FG
Is the name PROF. PETER KUGEL? (Y or N) Y
Reports ordered: F
Type hashcode of person ordering: #019SE
Is the name CHARLES A. STEELE, JR.? (Y or N) Y
Reports ordered: D2468ACEGI
Type hashcode of person ordering: #209UE
Is the name NAVAL SURFACE WEAPONS CTR.? (Y or N) Y
Reports ordered: 248G
Type hashcode of person ordering: #934H0
Sorry, that hashcode isn't in the file. What is the name? DOURSON
Here are all the entries matching that name:
#934HO: R. H. DOURSON
Type hashcode of person ordering: #934HO
Is the name R. H. DOURSON? (Y or N) Y
Reports ordered: 3DF68CI
Type hashcode of person ordering: #IREFR
Is the name PROF. C.A.R. HOARE? (Y or N) D
?The responses I can understand at this point are:
Y...,N...,
or <cr> (to get out of this loop),
or HELP<cr> (for more information).
Is the name PROF. C.A.R. HOARE? (Y or N) Y
Reports ordered: D

[Notice that the user was going too fast in the previous example,
wanting to type the report order before confirming the name. It is
important to confirm the name, even though it checks almost always,
since zip codes and hash codes may have changed between the time
the abstract was sent and the order received.]

Type hashcode of person ordering: #JAPOK
Is the name HIROYA KAWAI? (Y or N) Y
Reports ordered: D48XC

[Here the "X" was an error, KAWAI ordered only D, 4, 8, and C.  Since
X is not a valid report code for August, this will simply be deleted
later when the reports are mailed, as we shall see.  The computer has
no way of knowing how many August reports there are at this time, since
the information from August's abstract list is put in only when mailing
the reports later.   
If you make a mistake in the reports ordered, your mistake is dutifully
written onto the file ORDERS.XXX where XXX is the relevant month. It
is possible to edit that file using the normal `E' editor, to remove
any such errors, if you are careful not to spoil the format assumed
by the CS reports system; for details, see pages 12 and 14 below.]

Type hashcode of person ordering: #
6 new orders written onto ORDERS.AUG.

[Now the user failed to type a hashcode, thereby signalling that it is time
to stop ordering. The machine tells how many orders were recorded,
and then it goes back to:]

  CSREPORT system:  What can I do for you? ORDER
For which month? AUG
I will append to existing orders recorded on file ORDERS.AUG.

[OK, the user decided to go back to more ORDERing. This time the
machine found the file ORDERS.AUG, having just stored 6 orders there.]

Type hashcode of person ordering: #303WM
Is the name PROF. WILLIAM I. GROSKY? (Y or N) Y
Reports ordered: D468
Type hashcode of person ordering: #
1 new orders written onto ORDERS.AUG.

[Here the machine's grammar leaves something to be desired, since the system
programmer didn't expect there would often be only one new order!]

  CSREPORT system:  What can I do for you? UPDATE
UPDATE: INS, DEL, MOD, or LOOK? MOD
Type hashcode of entry to be modified: #303WM
Is the name PROF. WILLIAM I. GROSKY? (Y or N) Y

[The same man who was the subject of the previous order also wanted his
address to be changed. Note that it would be possible to go back and forth
many times between ORDER and UPDATE, but it is more efficient to do all
the orders first (before the hash codes change) and then go through again
to make all the updates.]

LINE 1: PROF. WILLIAM I. GROSKY
LINE 2: GEORGIA INSTITUTE OF TECHNOLOGY
LINE 3: SCHOOL OF INFORMATION
LINE 4: AND COMPUTER SCIENCE
LINE 5: ATLANTA, GEORGIA  30332
hashcode=#303WM,   category=C,   serial=967,
ordering history=NNNNNNNNNNN0,   current balance=$ .00
Type number of a line to be changed (1 to 5),
	or <cr> if modifications are complete: 2
New line 2: MATHEMATICS DEPARTMENT
Type number of a line to be changed (1 to 5),
	or <cr> if modifications are complete: 3
New line 3: COMPUTER SCIENCE SECTION
Type number of a line to be changed (1 to 5),
	or <cr> if modifications are complete: 4
New line 4: WAYNE STATE UNIVERSITY
Type number of a line to be changed (1 to 5),
	or <cr> if modifications are complete: 5
New line 5: DETROIT,MICHIGAN 48202
Type number of a line to be changed (1 to 5),
	or <cr> if modifications are complete: 
I deduce that the ZIP code or country is 48202;
	if not, please reject this and try again.
Type the classification (C,F,N,M, or A), or type <cr> to reject this entry: C
Hashcode changed from #303WM to #482II.
OK, the modification has been made.
UPDATE: INS, DEL, MOD, or LOOK? 

  CSREPORT system:  What can I do for you? REC

[This new move takes us to the next chapter of our story.]
[Example of a session with RECEIVE.]

[At the end of the last chapter, the user typed `REC', which is short
for `RECEIVE'. This is the subsystem that changes account balances.]

Type hashcode of account to credit (or 99999): #CANRO
Is the name DR. R. S. ROSENBERG? (Y or N) Y
Amount rec'd (or amount + or -, if accounting adjustment)? HELP

Type amount followed by <cr>, e.g., 5.20<cr>,
if $5.20 has been received in payment for this account.
Type amount followed by -<cr> if the account balance is to
decrease by this amount but no payment has been received.
Type amount followed by +<cr> if the account balance is to
increase by this amount. Just type <cr> to leave the account
unchanged. People not on the mailing list have hash code #99999.
Amount rec'd (or amount + or -, if accounting adjustment)? $3.50

[That's all there is to it; $3.50 has been subtracted from Rosenberg's
balance.
The next example is hypothetical, but it demonstrates another important
kind of thing you can do with RECEIVE.  Sometimes you just want to
adjust somebody's account, but no payment has been received. For
example, he might have been mischarged for a report he never got, because
of some slip, or he might have been overcharged or undercharged somehow.
By typing the amount followed by a minus sign, you decrease his balance due;
by typing an amount followed by a plus sign, you increase that balance. Here
is a demonstration of how to decrease DR. F. FIALA's balance due by one penny:]

Type hashcode of account to credit (or 99999): #CANRF
Is the name DR. F. FIALA? (Y or N) Y
Amount rec'd (or amount + or -, if accounting adjustment)? $0.01-

[That did it. Just to make sure, we can now leave the RECEIVE routine and
go back into UPDATE, to LOOK at his account:]

Type hashcode of account to credit (or 99999): #
  CSREPORT system:  What can I do for you? UPDATE
UPDATE: INS, DEL, MOD, or LOOK? LOOK
Type hashcode of entry to be displayed: #CANRF
Is the name DR. F. FIALA? (Y or N) Y
LINE 1: DR. F. FIALA
LINE 2: DEPT. OF MATHEMATICS
LINE 3: CARLETON UNIVERSITY
LINE 4: OTTAWA, CANADA K1S 5B6
hashcode=#CANRF,   category=C,   serial=152,
ordering history=NNNNNNNNNNN5,   current balance=$ 18.69

[You see, it worked! Now let's put that penny back and check it again:]

UPDATE: INS, DEL, MOD, or LOOK? 

  CSREPORT system:  What can I do for you? REC
Type hashcode of account to credit (or 99999): #CANRF
Is the name DR. F. FIALA? (Y or N) Y
Amount rec'd (or amount + or -, if accounting adjustment)? $0.01+
Type hashcode of account to credit (or 99999): #
  CSREPORT system:  What can I do for you? UPD
UPDATE: INS, DEL, MOD, or LOOK? LOOK
Type hashcode of entry to be displayed: #CANRF
Is the name DR. F. FIALA? (Y or N) Y
LINE 1: DR. F. FIALA
LINE 2: DEPT. OF MATHEMATICS
LINE 3: CARLETON UNIVERSITY
LINE 4: OTTAWA, CANADA K1S 5B6
hashcode=#CANRF,   category=C,   serial=152,
ordering history=NNNNNNNNNNN5,   current balance=$ 18.70
UPDATE: INS, DEL, MOD, or LOOK? 

[Of course one wouldn't really be so mistrustful of the CS Report System
in practice; you don't have to inspect the accounts, since computers
never make mistakes....stakes...stakes...stakes...stakes...stakes...stakes...stakes.
]

  CSREPORT system:  What can I do for you? RECEIVE
Type hashcode of account to credit (or 99999): #99999
Is the name PEOPLE NOT ON MAILING LIST? (Y or N) Y
Amount rec'd (or amount + or -, if accounting adjustment)? $12.25
California resident? (Y or N) Y

[The above example shows how to receive payment from people not on the
mailing list. They all share a common hash code, #99999, and the balance
due on that account represents an accumulation over all bills sent out to
people not otherwise on the list. In this case you are asked whether or
not the money is received from a California resident, for if it is we
must pay sales tax.  The receipts subject to sales tax will be shown later
in the summary of the day's financial transactions (see page 10).
If a customer is already on the mailing list, the computer doesn't ask
whether or not he is a California resident, since that can be figured out
by looking at the zip code.]

[Now we have seen all aspects of RECEIVE, so we shall leave it:]

Type hashcode of account to credit (or 99999): #
[Example of MAILing reports.]

  CSREPORT system:  What can I do for you? MAIL
MAIL subsystem: AVERY or CHESHIRE labels? HELP

The MAIL subsystem is used to prepare mailing labels and/or
invoices for monthly report distribution.  Two kinds of mailing labels
are presently provided for: AVERY (34 characters wide, one printed
at a time) and CHESHIRE (34 characters wide and three printed at once).
When mailing an abstract list, type ABS<cr> and I will prepare the file
LABELS.TMP containing mailing labels for everyone on the mailing list
except codes N, M, or A.  When mailing invoices and reports, type
REP<cr> and give the necessary information about the relevant month's
reports.  The ORDERS.XXX file for that month will be used to specify
all orders, and the activity records for all customers are shifted
left one position unless you request otherwise.

MAIL subsystem: AVERY or CHESHIRE labels? AVERY
MAIL subsystem: Sending abstracts or reports? REPTS
For which month? AUG
I need to know some things from that abstract list.

[The comment, `I need to know some things...' is the machine's nice way of
telling you that a somewhat tedious question-and-answer session must now
begin, in which you are supposed to feed in a lot of relevant information.
During this session, you have several chances to correct errors (for example,
by typing <cr> to a question, the machine will start over again on the
report it was last interested in); if some terrible error is made, you can
type QUIT at an appropriate time and start over from scratch.  A lot of
invoices will be printed based on what you type now, so it is important to
get the detailed facts straight.]

Please enter STAN- or AIM- number of reports 1 and 2, followed by *AUTHOR,TITLE
 (or <cr> if done, QUIT<cr> to abort):
HELP!

At this point I need to know the names and numbers of the reports,
in order to identify them meaningfully on the invoices to
be written. Here are two examples of the form I want you to type:
STAN-CS-76-562*KNUTH,TRABB PARDO,EARLY DEVEL OF PROG LANGUAGES
AIM-282*TAYLOR,SYNTHESIS OF MANIPULATOR CONTROL PROGRAMS(THESIS)
Note that there should be an asterisk (and no space) between the report
number and the author name(s). The title has to be abbreviated so that
everything fits on one line, even when I substitute the word `(microfiche) '
for the asterisk. If the report is a thesis, follow the title by `(THESIS)'.

Please enter STAN- or AIM- number of reports 1 and 2, followed by *AUTHOR,TITLE
 (or <cr> if done, QUIT<cr> to abort):
AIM-280*GROSSMAN,TOLERANCING IN DISCR PARTS MFG & ASSEMBLY
What is the cost of hardcopy? (If unavailable, say anything.) $HELP
?I wanted you to type a dollars-and-cents number like 3.14<cr>----
Please try again, or just type <cr> to get out of this.
What is the cost of hardcopy? (If unavailable, say anything.) $2.40
How many copies of AIM-280(hardcopy) 
are available for distribution? 182
How many copies of AIM-280(microfiche) 
are available for distribution? 300
Thanks. Can I assume that the information you just gave for this report 
is correct and complete? (Y or N) Y
Please enter STAN- or AIM- number of reports 3 and 4, followed by *AUTHOR,TITLE
 (or <cr> if done, QUIT<cr> to abort):
STAN-CS-76-556*GUIBAS,ANALYSIS OF HASHING ALGORITHMS(THESIS)
What is the cost of hardcopy? (If unavailable, say anything.) $5.55
How many copies of STAN-CS-76-556(hardcopy) 
are available for distribution? 33
How many copies of STAN-CS-76-556(microfiche) 
are available for distribution? 75
Thanks. Can I assume that the information you just gave for this report 
is correct and complete? (Y or N) Y
Please enter STAN- or AIM- number of reports 5 and 6, followed by *AUTHOR,TITLE
 (or <cr> if done, QUIT<cr> to abort):

........

	........
		and so on, the dialog continues but it is too
			boring to reproduce here in full..........

				finally comes the last report:

Please enter STAN- or AIM- number of reports H and I, followed by *AUTHOR,TITLE
 (or <cr> if done, QUIT<cr> to abort):
AIM283
What is the cost of hardcopy? (If unavailable, say anything.) $ANYTHING
?I wanted you to type a dollars-and-cents number like 3.14<cr>----
Please try again, or just type <cr> to get out of this.
What is the cost of hardcopy? (If unavailable, say anything.) $

[Here the user realized he forgot to give the author and title, so he hits
<cr> to start over on this report.]

Please enter STAN- or AIM- number of reports H and I, followed by *AUTHOR,TITLE
 (or <cr> if done, QUIT<cr> to abort):
AIM-283*DAVIS,APPL OF META KNOWLEDGE TO LARGE KNOWLG BASES(THESIS)
What is the cost of hardcopy? (If unavailable, say anything.) $2.83
How many copies of AIM-283(hardcopy) 
are available for distribution? 0

[By saying 0 copies are available, you guarantee that no orders for this
report will be shipped. The August abstract list actually said that
hardcopy of this report is not available; if somebody tried to order it
anyway, he gets a "sorry" message printed on his invoice.]

How many copies of AIM-283(microfiche) 
are available for distribution? 300
Thanks. Can I assume that the information you just gave for this report 
is correct and complete? (Y or N) Y
Please enter STAN- or AIM- number of reports J and K, followed by *AUTHOR,TITLE
 (or <cr> if done, QUIT<cr> to abort):

[At this point the user was finally done typing in the information about
August reports, so the response was just <cr>.]

OK, now I'm looking at the orders...
I ignored the invalid report code X which appears in the following order:
#JAPOK,    508:D48XC	9 OCT 1976

[Remember when this bad order was made on page 6? As promised, such an error
is simply ignored by MAIL.]

I have read through all the orders, and here is how things stand:
(hardcopy)	To be	Unfillable	(microfiche)	To be	Unfillable
Cost  On hand	sent	requests	      On hand	sent	requests
AIM-280*GROSSMAN,TOLERANCING IN DISCR PARTS MFG & ASSEMBLY
$ 2.40	182	0	0			300	2	0
STAN-CS-76-556*GUIBAS,ANALYSIS OF HASHING ALGORITHMS(THESIS)
$ 5.55	33	1	0			75	4	0
STAN-CS-76-557*PATERSON,INTRO TO BOOLEAN FUNCTION COMPLEXITY
$ 2.25	84	0	0			97	3	0
AIM-281*MANNA,WALDINGER,IS`SOMETIME'SOMETIMES BETTER?
$ 2.90	45	0	0			300	5	0
STAN-CS-76-559*GOLUB ET AL,RANK DEGENERACY AND LEAST SQUARES
$ 2.75	21	0	0			99	1	0
AIM-282*TAYLOR,SYNTHESIS OF MANIPULATOR CONTROL PROGRAMS(THESIS)
$ .00	0	0	0			300	3	0
STAN-CS-76-561*WOODS,MATH PROG LANGUAGE: USER'S GUIDE
$ .00	4  	4	1			40	1	0
STAN-CS-76-562*KNUTH,TRABB PARDO,EARLY DEVEL OF PROG LANGUAGES
$ 3.50	180	2	0			80	2	0
AIM-283*DAVIS,APPL OF META KNOWLEDGE TO LARGE KNOWLG BASES(THESIS)
$ 2.83	0	0	0			300	2	0
Please check this carefully. If there has been some error,
type <cr> to exit; but if it's all right to go ahead and print the invoices,
type Y<cr> and I will prepare them: Y
OK, I will begin to work on the invoices.
Do you want the activity codes to be shifted? (Y or N) HELP

Each addressee has activity codes representing the number of orders
he made during the last 12 mailing periods. If you type Y<cr>, the
present mailing is considered a new mailing period.  If you type
N<cr> or <cr>, the present mailing is considered to be combined with
the previous mailing period.

Do you want the activity codes to be shifted? (Y or N) N

[By saying not to shift the activity codes, the user is implying that the
present mailing is just an extension of the previous one; the previous
mailing was presumably done prematurely, and a lot of order forms came
in after the first mailing went out. After the previous mailing, file
ORDERS.AUG was deleted, and the new orders sent out today were a new batch.
Usually, of course, there will be only one mailing per abstract list,
so the answer to the above question will usually be Y.]

The invoices, bills of lading, and dunning letters have been written
onto file INVOIC.TMP. To print them, do
		XS INVOIC.TMP/NOHEAD
and after successful completion of that do
		DEL INVOIC.TMP
		DEL ORDERS.AUG
since these files ought to be deleted as soon as the invoices have been
correctly prepared.
The mailing labels have been written onto file LABELS.TMP. 
To print them, see instructions in the user manual; be sure to delete
this file afterwards.

[The instructions for printing mailing labels appear on page 11.]

  CSREPORT system:  What can I do for you? MAIL
Sorry, but you can't use MAIL again at this session;
	you have to spool the output from this session first.

[MAIL can't be used twice in a single session, otherwise it would
clobber mailing labels and/or invoices it has written. So we can't
demonstrate here what happens when MAIL is used for abstracts rather
than reports.  But that is extremely simple; when you send out an
abstract list, MAIL simply makes a mailing label for everybody
on the mailing list whose code is C or F.

Incidentally, when MAIL is used for sending reports, and if activity
codes are being shifted, there will be mailing labels made up for
everybody whose code is A, M, or N, but no invoices for those people
will be printed.]
[Finally, the last subsystem: SEND.]

  CSREPORT system:  What can I do for you? SEND
I have found 43 records about old reports in file ONHAND.DSK.

[When this sample dialog was run, the file ONHAND.DSK contained 43
entries about early CS reports in stock, covering up to CS105 only.
The SEND procedure uses this file to check inventory, and SEND is
easiest to use if ONHAND.DSK is kept up to date; see page 15 for
a description of this file.]

Type hashcode (or 99999) for person requesting old reports: #HELP

I am going to try to identify an addressee for you. Type the
five-character hash code if you know it, or type 99999 if the
addressee is not on our mailing list and not being inserted into it.
If you don't know the hash code, type XXXXX and I will try a name search
of the whole file. If you type just <cr> now, I will go on to something
else. Since hash codes sometimes change, you should doublecheck the
addressee name I find in case it is the wrong person.

Type hashcode (or 99999) for person requesting old reports: #99999
Is the name PEOPLE NOT ON MAILING LIST? (Y or N) Y
Type the name and address of customer, followed by a blank line:
A. CUSTOMER

Type hashcode (or 99999) for person requesting old reports: #99999

[Here the computer had rejected A.CUSTOMER, because it was only a
name without an address.]

Is the name PEOPLE NOT ON MAILING LIST? (Y or N) Y
Type the name and address of customer, followed by a blank line:
A. CUSTOMER
UNIVERSITY OF PEKING
CHINA

Should this customer get the reports free of charge? (Y or N) Y
Type short name of report requested: HELP

Give the short name of a report requested, e.g. CS287 or AIM239,
followed by F if it is microfiche, e.g. CS287F.  But if no more 
reports are requested by this customer, just type <cr>.

Type short name of report requested: AIM40F
Type short name of the next report requested: CS100
Type short name of the next report requested: 
Before I make up the invoice, you'd better doublecheck the above.
We will be sending
STAN-CS-66-038(microfiche) MCCARTHY,PAINTER,CORRECTNESS OF A COMPILER
STAN-CS-68-100(hardcopy) BREDT,MODEL OF INFORM. PROC. IN CHILDREN
Is it all right to make up the invoice? (Y or N) Y
OK, I am making an invoice for this customer.
Type hashcode (or 99999) for person requesting old reports: #99999
Is the name PEOPLE NOT ON MAILING LIST? (Y or N) Y
Type the name and address of customer, followed by a blank line:
B. CUSTOMER
US DEPT OF DEFENSE
WASHINGTON DC 00000

Should this customer get the reports free of charge? (Y or N) N
Type short name of report requested: CS100
Type short name of the next report requested: AIM40F
Type short name of the next report requested: CS121
I couldn't find that one in the file.
Enter its specs in the form STAN- or AIM-number followed by *AUTHOR,TITLE:
STAN-CS-69-121*MOLER,EIGENVALUES OF LAPLACIAN,RHOMBICAL DOM
Do you want to enter it into the file? (Y or N) Y
What is the price of hardcopy? $2.20
How many hard copies are on hand? 5
How many microfiche copies are on hand? 0
Type short name of the next report requested: CS121F
Type short name of the next report requested: 
Before I make up the invoice, you'd better doublecheck the above.
We will be sending
STAN-CS-66-038(microfiche) MCCARTHY,PAINTER,CORRECTNESS OF A COMPILER
STAN-CS-69-121(hardcopy) MOLER,EIGENVALUES OF LAPLACIAN,RHOMBICAL DOM $ 2.20
We will say that we are unable to send
STAN-CS-68-100(hardcopy) BREDT,MODEL OF INFORM. PROC. IN CHILDREN
STAN-CS-69-121(microfiche) MOLER,EIGENVALUES OF LAPLACIAN,RHOMBICAL DOM
Is it all right to make up the invoice? (Y or N) Y
OK, I am making an invoice for this customer.

[Note that there was only one copy of CS100 left, according to the records
in file ONHAND.DSK, so A.CUSTOMER got it and B.CUSTOMER got a `sorry'
message. The file ONHAND.DSK didn't include any information about CS121
at this time, so the information specified was recorded and will be appended
to the file for the next time SEND is used.]

Type hashcode (or 99999) for person requesting old reports: #CZENZ
Is the name ZDENEK ZDRAHAL? (Y or N) Y
Type short name of report requested: CS121
Type short name of the next report requested: 
Before I make up the invoice, you'd better doublecheck the above.
We will be sending
STAN-CS-69-121(hardcopy) MOLER,EIGENVALUES OF LAPLACIAN,RHOMBICAL DOM
Is it all right to make up the invoice? (Y or N) Y
OK, I am making an invoice for this customer.

[Since this customer is on our mailing list with `free' (F) status,
the price $2.20 does not show here as it did with B.CUSTOMER.]

Type hashcode (or 99999) for person requesting old reports: #XXXXX
Sorry, that hashcode isn't in the file. What is the name? MITCHELL
Here are all the entries matching that name:
#SCOFM: PROF. A.R. MITCHELL
#943AI: DR. JAMES MITCHELL
Type hashcode (or 99999) for person requesting old reports: #SCOFM
Is the name PROF. A.R. MITCHELL? (Y or N) Y
Type short name of report requested: CS122
I couldn't find that one in the file.
Enter its specs in the form STAN- or AIM-number followed by *AUTHOR,TITLE:
STAN-CS-69-122*MITCHELL,MCCRAITH,VARIANTS OF GRAM-SCHMIDT
Do you want to enter it into the file? (Y or N) N
Do you have a copy on hand? (Y or N) N
Type short name of the next report requested: 
Before I make up the invoice, you'd better doublecheck the above.
We will say that we are unable to send
STAN-CS-69-123(hardcopy) MITCHELL,MCCRAITH,VARIANTS OF GRAM-SCHMIDT
Is it all right to make up the invoice? (Y or N) Y
OK, I am making an invoice for this customer.
Type hashcode (or 99999) for person requesting old reports: #943AI
Is the name DR. JAMES MITCHELL? (Y or N) Y
Type short name of report requested: CS123
I couldn't find that one in the file.
Enter its specs in the form STAN- or AIM-number followed by *AUTHOR,TITLE:
STAN-CS-69-123*BRENT,DISTR OF SMALL PRIME GAPS
Do you want to enter it into the file? (Y or N) N
Do you have a copy on hand? (Y or N) Y
What does it cost? $2.25
Type short name of the next report requested: 
Before I make up the invoice, you'd better doublecheck the above.
We will be sending
STAN-CS-69-123(hardcopy) BRENT,DISTR OF SMALL PRIME GAPS  $ 2.25
Is it all right to make up the invoice? (Y or N) Y
OK, I am making an invoice for this customer.
Type hashcode (or 99999) for person requesting old reports: #
I wrote the invoices onto file BILLS.TMP. 
To print them, do
		XS BILLS.TMP/NOHEAD
and after successful completion don't forget to DEL BILLS.TMP.

  CSREPORT system:  What can I do for you? SEND
Sorry, but you can't use SEND again at this session;
	you have to spool the output from this session first.

  CSREPORT system:  What can I do for you? UPDATE
UPDATE: INS, DEL, MOD, or LOOK? LOOK
Type hashcode of entry to be displayed: #943AI
Is the name DR. JAMES MITCHELL? (Y or N) Y
LINE 1: DR. JAMES MITCHELL
LINE 2: XEROX
LINE 3: 3333 COYOTE HILL RD.
LINE 4: PALO ALTO, CALIFORNIA  94304
hashcode=#943AI,   category=C,   serial=1307,
ordering history=NNNNNNNNNNN2,   current balance=$ 2.25

[Mitchell had earlier ordered one report from the August list, but his
balance had been zero. Now his balance is $2.25, reflecting this new
order for CS123, and his last activity code has changed from 1 to 2.

The SEND routine writes bills that are essentially the same as invoices
written by MAIL; but it doesn't prepare mailing labels.

Now we are coming to the end of the dialog; first we get out of UPDATE:]

UPDATE: INS, DEL, MOD, or LOOK? 
[Finishing a session.]

  CSREPORT system:  What can I do for you? 
May I record all of today's transactions permanently on ADDFIL.DSK? (Y or N) Y

[The user typed just <cr>, indicating that this session is terminated. Then
the computer asked if the transactions from today should be recorded permanently.
So far, all the insertions, deletions, modifications, and changes to account
balances have been made only in the computer's mind, not on the file ADDFIL.DSK
which is the main record; so if a bad blunder has occurred, you can simply
answer N to this question, and the next session with CSREPT will go back
to the previous setting of ADDFIL.DSK.  This is your last chance to keep
serious errors out of the permanent file.
Incidentally, if you haven't actually changed any file entries (e.g., if you
simply recorded ORDERS or made mailing labels for an abstract list), you
don't get this message, since it is unnecessary to re-record ADDFIL.DSK when
it hasn't changed.]

[Usually your answer to the above question will be Y, and then the machine will
take a little while to spew out the file. Finally it will give you some
statistics, like this:]

The address file now contains a total of 1411 entries,
including the following special categories:
F = 198 A = 31 N = 25 M = 12
and the total balance outstanding is $ 1067.10.

[Furthermore if any money has been involved in the session, you get a
financial summary, to wit:]

SUMMARY of today's financial transactions:
$ 15.75 received in payments,
$ 12.25 of which was from residents of California.
$ .00 was subtracted from accounts due to adjustments or
	deletions from the mailing list.
$ 17.00 new charges were sent out on invoices.

See you later. Be sure to xspool a copy of DIALOG.TMP,
	which records what happened today.

[It is very important to make a copy of the file DIALOG.TMP, which shows
exactly what transpired; what you have been reading is simply an edited
version of the file DIALOG.TMP after a session which took place on 
October 9, 1976. Thus, the first thin to do after you get the above message
is `XSPOOL DIALOG.TMP'. (Exception: If no changes were made to ADDFIL.DSK,
and the session was essentially one big mistake, you can throw everything
away and forget that session.  But that will hardly ever happen.)
After that you can xspool INVOIC.TMP and/or BILLS.TMP and/or
print mailing labels from LABELS.TMP. You might also like to make yourself
a copy of ADDFIL.DSK and ONHAND.DSK and perhaps ORDERS.XXX for some month
XXX; it is suggested that you use SPOOL not XSPOOL for these files.

Finally, before logging off, type `DIR' to the monitor, and it will
show you all the files currently present. You should delete all files
with the suffix TMP after they have been spooled or xspooled, and
you should also delete the ORDERS.XXX file as soon as it has been used
to make invoices for mailing reports. A fast way to delete all files
with suffix TMP is to say `DEL *.TMP<cr>' to the monitor.]
How to print mailing labels

First type this at the monitor:

ASSIGN LPT<cr>

Then run over to the printer, as soon as it has been assigned to you,
and hit the STOP button.

Then run back to your terminal and type

COPY LPT:←LABELS.TMP/EXTRA=0<cr>

Then run back to the printer and change the paper, putting the right
mailing labels in (AVERY or CHESHIRE, as you had specified) and lining
them up right, hit START on the printer and wait for the labels to
be printed.  When the printing is done, change the paper back again,
then run back to your terminal and type

DEASSIGN LPT<cr>

so that other people can begin to use the printer again.
Once the labels have been successfully printed, do

DEL LABELS.TMP<cr>

Congratulations, you have successfully gotten the labels printed
(and picked up a bit of exercise too).
Files used by the system (general information)

The REPORT system deals with the following permanent files:

ADDFIL.DSK  The mailing list and account balances
ONHAND.DSK  List of past reports and how many are on hand
FORM.DAT    Canned text used to print invoices

There are also twelve files called ORDERS.JAN, ORDERS.FEB, ..., ORDERS.DEC
which exist when orders for a given month's abstract list have been
recorded but not yet sent.

Then there are temporary files, which should be deleted as soon as they
have been properly spooled:

INVOIC.TMP  Invoices, bills of lading, dunning letters
BILLS.TMP   Invoices and bills of lading for isolated orders
LABELS.TMP  Mailing labels
DIALOG.TMP  Transcript of a session

The file FORM.DAT is never written on by the computer program; you can
edit it if you wish to change the wording of the invoices. Its format
is self-explanatory; the asterisks it contains must remain in the
same relative positions, as they divide the canned text into nineteen
pieces that are used in various appropriate combinations.

The other files are periodically written out by the program. When newly
written, they are not in the format used by the system editor. But you
may edit them; after you type ET <filename> you will be asked if it's
OK to reformat the file, and the answer is Y.
However, you edit ADDFIL.DSK at your peril; it is much better to
use the system UPDATE function to do all updates to that file. 
The system checks for a lot of possible mistakes, and (most important)
keeps a record of exactly what happened, in DIALOG.TMP.
Even though you will therefore probably not be editing ADDFIL.DSK
you will probably want to understand its format, since it is helpful
to spool it every so often; page 13 describes its format.

You may want to edit an ORDERS.XXX file to correct erroneous orders
typed in to the ORDERS subsystem of REPORT. See page 14 for that format.
And you almost surely will want to make regular changes to the file
ONHAND.DSK, in order to reflect the current inventory; see page 15.

It is unlikely that you will be editing any of the TMP files; they
are just for spooling.  But pages 16, 17, etc. show what the TMP files
looked like after the sample dialog we have been studying, so that you
can get a better idea of what they contain.

TTwo other files are present: REPORT.DMP and CSREPT.SAI. Please keep
your hands off of them unless you are an experienced programmer;
they are the computer programs.
ADDFIL.DSK

The master address file contains twenty addresses per page, in increasing
order by hash code.

An address entry consists of a mysterious header line followed by two to
five lines of address in straightforward format. The header line has the
following form:

*czzzzz|aaaaaaaaaaaa#hhhhh ssss$bbb.bb

where 	c	is the category code (C, F, N, M, A)
	zzzzz	is the zip code or country or IDMAI or ONRXX or DARPA or AUTOM
	aa...a	is the list of 12 activity codes (leftmost is oldest)
	hhhhh	is the hash code, its first three characters agree with zzzzz
	ssss	is the serial number, unique for each user
	bbb.bb  is the balance due, preceded by a minus sign if a credit balance

The file is not in order by serial number, since insertions and deletions
may change zip codes but not serial numbers.  The fields stated above all
have a fixed size, except that the bbb.bb field is variable length, as
many digits to the left of the decimal point as necessary.

For example, here is how ADDFIL.DSK looked after the sample dialog terminated:

*CAFRIC|NNNNNNNNNNN4#AFRDB    1$ 5.60
D. BROWN
UNIVERSITY OF WITWATERSRAND
1 JAN SMUTS AVENUE
JOHANNESBURG 2001
SOUTH AFRICA
*CAFRIC|NNNNNNNNNNN0#AFRFL    2$ .00
PROF. G.L. MURRAY
DEPT. OF COMPUTER SCIENCE
UNIVERSITY OF STELLENBOSCH
STELLENBOSCH, SOUTH AFRICA
.... [From here on, we show only important addressees that were named:]
*CCANAD|NNNNNNNNNNN5#CANRF  152$ 18.70
DR. F. FIALA
DEPT. OF MATHEMATICS
CARLETON UNIVERSITY
OTTAWA, CANADA K1S 5B6
....
*CCANAD|NNNNNNNNNNN2#CANRO  156$ .00
DR. R. S. ROSENBERG
DEPT. OF COMPUTER SCIENCE
UNIVERSITY OF BRITISH COLUMBIA
VANCOUVER 8, B. C., CANADA
....
*FIDMAI|NNNNNNNNNNN0#IDMFK 1411$ .00
PROF. A. C. YAO
POLYA 
....
*FIDMAI|NNNNNNNNNNN0#IDMFS 1412$ .00
PROF. F. FRANCES YAO
POLYA 
....
*FSWITZ|NNNNNNNNNNN2#SWINE  421$ .00
JOHN G. HERRIOT
GEERENSTRASSE 23
CH-8044 GOCKHAUSEN
SWITZERLAND
....
*C02167|NNNNNNNNNNN1#021FG  693$ 3.50
PROF. PETER KUGEL
COMPUTER SCIENCE PROGRAM
BOSTON COLLEGE
CHESTNUT HI11, MASSACHUSETTS
....
*C48202|NNNNNNNNNNN4#482II  967$ .00
PROF. WILLIAM I. GROSKY
MATHEMATICS DEPARTMENT
COMPUTER SCIENCE SECTION
WAYNE STATE UNIVERSITY
DETROIT,MICHIGAN 
....
*C94304|NNNNNNNNNNN2#943AI 1307$ 2.25
DR. JAMES MITCHELL
XEROX
3333 COYOTE HILL RD.
PALO ALTO, CALIFORNIA
....
*C94301|NNNNNNNNNNN0#943FW  616$ .00
PROF. N. WIRTH
1302 CHANNING AVE.
PALO ALTO CA 
....
*C94305|NNNNNNNNNNN0#99999 1409$-10.05
PEOPLE NOT ON MAILING LIST
C/O VICKI L. FAHRENHOLZ
COMPUTER SCIENCE DEPT.
STANFORD UNIVERSITY
STANFORD CA
 [End of the file.]

ORDERS.JAN, ORDERS.FEB, etc.

The files ORDERS.XXX consist of one of more lines in the form

#hhhhh,bbbssss:lllll<tab>date

where

hhhhh	is the hash code
bbb	is three blank spaces
ssss	is the serial number(with leading zeroes blank)
lllll	is a variable-length list of order codes 1,2,...,9,A,B,etc.
date	is the date the order was recorded

For example, after the sample dialog the file ORDERS.AUG looked like this:

#021FG,    693:F	9 OCT 1976
#019SE,    683:D2468ACEGI	9 OCT 1976
#209UE,    922:248G	9 OCT 1976
#934HO,   1275:3DF68CI	9 OCT 1976
#IREFR,    445:D	9 OCT 1976
#JAPOK,    508:D48CX	9 OCT 1976
#303WM,    967:D468	9 OCT 1976
ONHAND.DSK

Each line in the file ONHAND.DSK must have the form

*a|b*c|d|e|$f<cr>   or  *a|SAME

where a,b,c,d,e,f are variable-length items with the following meanings:

a is the short name of a report
b is the STAN or AIM number
c is the author(s) and title
d is the number of hardcopies on hand
e is the number of microfiche copies on hand
f is the price

*a|SAME means that the short name a refers to the same report as the previous line.

For example, after the sample dialog above, ONHAND.DSK became this:

*CS4|STAN-CS-64-004*BERGMAN,HERRIOT,NUMER SOLN BDRY VALUE BY INT OPERS|2|0|$ 2.40
*CS5|STAN-CS-64-005*ROSEN,EQUIL PTS FOR CONCAVE N-PERSON GAMES|2|0|$ 2.55
*CS7|STAN-CS-64-007*ROSEN,SUFF.COND.OPT.CONTROL CONVEX PROC.|1|0|$ 2.60
*CS11|STAN-CS-64-011*NAKAMURA,ROSEN,ELASTIC-PLASTIC ANAL OF TRUSSES|2|0|$ 2.65
*CS13|STAN-CS-64-013*PEREYRA,ROSEN,COMPUT.OF PSEUDOINVERSE|1|0|$ 2.55
*CS14|STAN-CS-64-014*EFIMENKO,EIGENVALUES AND EIGENFUNCTIONS IN PDE|2|0|$ 2.30
*CS15|STAN-CS-65-015*GRACE,NON-ISOMORPHIC CONVEX POLYHEDRA|1|0|$ 5.80
*CS17|STAN-CS-65-017*FORSYTHE,WIRTH,AUTOMATIC GRADING PROGRAMS|1|0|$ 2.20
*CS19|STAN-CS-65-019*AGEEV,MACLAREN,RUSSIAN ALGOL IN ENGLISH|1|0|$ 1.90
*CS23|STAN-CS-65-023*RUDIN,CONVEX POLYNOMIAL APPROXIMATION|3|0|$ 3.00
*CS25|STAN-CS-65-025*HODGE,YIELD-PT LOAD BY NONLINEAR PROGRAMMING|3|0|$ 2.40
*CS27|STAN-CS-65-027*VOLKOV,METHOD OF NETS FOR POISSON EQUATION|1|0|$ 2.60
*CS28|STAN-CS-65-028*MILLER,STRANG,MATRIX THMS FOR PDE'S|1|0|$ 2.70
*CS31|STAN-CS-65-031*RAVIART,WEAK SOLS LINEAR PARABOLIC EQNS|2|0|$ 3.35
*CS32|STAN-CS-65-032*HOCKNEY,MINIMUM MULTIPLICATION FOURIER ANAL|1|0|$ 3.30
*CS37|STAN-CS-66-037*REYNOLDS,COGENT 1.2 OPERATIONS MANUAL|5|0|$ 2.70
*CS38|STAN-CS-66-038*MCCARTHY,PAINTER,CORRECTNESS OF A COMPILER|0|298|$ 2.10
*AIM40|SAME
*CS42|STAN-CS-66-042*KAHAN,WHEN NEGLECT OFF-DIAG ELTS SYMM TRI-DIAG MTX|3|0|$ 2.00
*CS49|STAN-CS-66-049*REDDY,COMPUTER SPEECH RECOGNITION|0|300|$ 6.00
*AIM43|SAME
*CS50|STAN-CS-66-050*PERSSON,SEQUENCE EXTRAPOLATING PROGRAMS|0|300|$ 7.00
*AIM46|SAME
*CS51|STAN-CS-66-051*BERGMAN,HERRIOT,KURTZ,TRANSONIC FLOW PATTERNS|5|0|$ 2.75
*CS55|STAN-CS-67-055*ADAMS,STOPPING CRITERION FOR POLYN.ROOT-FINDING|4|0|$ 2.05
*CS56|STAN-CS-67-056*BAUER,QD-METHOD WITH NEWTON SHIFT|3|0|$ 1.90
*CS62|STAN-CS-67-062*TIENARI,VARYING LENGTH FLOATING-PT ARITH|1|0|$ 2.85
*CS64|STAN-CS-67-064*RICHMAN,FLOATING-PT NUMBER REPRESENTATIONS|2|0|$ 2.65
*CS71|STAN-CS-67-071*JENKINS,TRAUB,AUTOMATIC POLYNOMIAL SOLVER|3|0|$ 2.85
*CS72|STAN-CS-67-072*GOLUB,SMITH,CHEBYSHEV APPROX BY CHEBYSHEV SYSTS|3|0|$ 3.30
*CS74|STAN-CS-67-074*FORSYTHE,WHAT IS SATISFACTORY QUAD-EQ SOLVER?|5|0|$ 2.00
*CS76|STAN-CS-67-076*ANSELONE,COLLECTIVELY COMPACT OPERATOR APPROX.|2|0|$ 3.50
*CS81|STAN-CS-67-081*GOLUB,WELSCH,GAUSS QUADRATURE RULES|5|0|$ 2.55
*CS82|STAN-CS-67-082*TESLER,ENEA,COLBY,DIGRAPH REPR BELIEF SYSTEMS|1|0|$ 2.65
*CS84|STAN-CS-68-084*FRIEDMAN,SYSTEM FOR TRANSFORMATIONAL GRAMMAR|4|0|$ 2.65
*CS94|STAN-CS-68-094*SHAW,FORMAL DESCR & PARSING OF PICTURES|1|0|$ 7.85
*SLACR84|SAME
*CS96|STAN-CS-68-096*SMITH,INTERVAL ARITH DET EVAL AND TESTING CHEB SYST|3|0|$ 2.50
*CS100|STAN-CS-68-100*BREDT,MODEL OF INFORM. PROC. IN CHILDREN|0|0|$ 3.50
*CS101|STAN-CS-68-101*KAPLAN,FORMAL STRONG EQUIV FOR ELEMENTAL PGMS|0|300|$ 9.60
*AIM65|SAME
*CS102|STAN-CS-68-102*PNUELI,INTEGER PROGRAMMING OVER A CONE|5|0|$ 2.60
*CS105|STAN-CS-68-105*RICHMAN, EPSILON CALCULUS|2|0|$ 5.85
*CS121|STAN-CS-69-121*MOLER,EIGENVALUES OF LAPLACIAN,RHOMBICAL DOM|3|0|$ 2.20

Note that the number of hardcopies for CS100 has dropped to 0, and CS121 has
been added.
Here is what appeared on LABELS.TMP after the sample dialog:
PROF. C.A.R. HOARE          #IREFR
COMPUTER SCIENCE DEPT.                 
QUEEN'S UNIVERSITY                     
BELFAST BT7                            
NORTHERN IRELAND                       

HIROYA KAWAI                #JAPOK
DATA COMPUTATION CENTER                
OSAKA UNIVERSITY                       
SUITA CITY                             
OSAKA, JAPAN                           

CHARLES A. STEELE, JR.      #019SE
NORMAN AVE.                            
MAGNOLIA, MASSACHUSETTS  01930         



PROF. PETER KUGEL           #021FG
COMPUTER SCIENCE PROGRAM               
BOSTON COLLEGE                         
CHESTNUT HI11, MASSACHUSETTS  02167    


NAVAL SURFACE WEAPONS CTR.  #209UE
COMPUTER APPLICATIONS BRANCH           
CODE WA-53, RM. 3-252                  
WHITE OAK LABORATORY                   
SILVER SPRING, MARYLAND  20910         

PROF. WILLIAM I. GROSKY     #482II
MATHEMATICS DEPARTMENT                 
COMPUTER SCIENCE SECTION               
WAYNE STATE UNIVERSITY                 
DETROIT,MICHIGAN   48202               

R. H. DOURSON               #934HO
COMPUTER SCIENCE & STAT. DEPT.         
CALIFORNIA STATE POLYTECHNIC           
STATE UNIVERSITY                       
SAN LUIS OBISPO, CALIFORNIA  93407     

And here are the first invoices written onto INVOIC.TMP:

SUBJECT: REPORT ORDER				9 OCT 1976

     TO: PROF. C.A.R. HOARE


   FROM: LIBRARY AND PUBLICATIONS COMMITTEE
	 COMPUTER SCIENCE DEPARTMENT
	 STANFORD UNIVERSITY
	 STANFORD, CA 94305 USA

The following reports that you have ordered are enclosed with this invoice:

STAN-CS-76-561(hardcopy) WOODS,MATH PROG LANGUAGE: USER'S GUIDE




PROF. C.A.R. HOARE                          #IREFR
COMPUTER SCIENCE DEPT.                            
QUEEN'S UNIVERSITY                                
BELFAST BT7                                       
NORTHERN IRELAND                                  

≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

SUBJECT: REPORT ORDER				9 OCT 1976

     TO: HIROYA KAWAI


   FROM: LIBRARY AND PUBLICATIONS COMMITTEE
	 COMPUTER SCIENCE DEPARTMENT
	 STANFORD UNIVERSITY
	 STANFORD, CA 94305 USA

The following reports that you have ordered are enclosed with this invoice:

STAN-CS-76-556(microfiche) GUIBAS,ANALYSIS OF HASHING ALGORITHMS(THESIS)
AIM-281(microfiche) MANNA,WALDINGER,IS`SOMETIME'SOMETIMES BETTER?
AIM-282(microfiche) TAYLOR,SYNTHESIS OF MANIPULATOR CONTROL PROGRAMS(THESIS)
STAN-CS-76-561(hardcopy) WOODS,MATH PROG LANGUAGE: USER'S GUIDE




HIROYA KAWAI                                #JAPOK
DATA COMPUTATION CENTER                           
OSAKA UNIVERSITY                                  
SUITA CITY                                        
OSAKA, JAPAN                                      

≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

SUBJECT: REPORT ORDER				9 OCT 1976

     TO: CHARLES A. STEELE, JR.


   FROM: LIBRARY AND PUBLICATIONS COMMITTEE
	 COMPUTER SCIENCE DEPARTMENT
	 STANFORD UNIVERSITY
	 STANFORD, CA 94305 USA

The following reports that you have ordered are enclosed with this invoice:

AIM-280(microfiche) GROSSMAN,TOLERANCING IN DICR PARTS MFG & ASSEMBLY
STAN-CS-76-556(microfiche) GUIBAS,ANALYSIS OF HASHING ALGORITHMS(THESIS)
STAN-CS-76-557(microfiche) PATERSON,INTRO TO BOOLEAN FUNCTION COMPLEXITY
AIM-281(microfiche) MANNA,WALDINGER,IS`SOMETIME'SOMETIMES BETTER?
STAN-CS-76-559(microfiche) GOLUB ET AL,RANK DEGENERACY AND LEAST SQUARES
AIM-282(microfiche) TAYLOR,SYNTHESIS OF MANIPULATOR CONTROL PROGRAMS(THESIS)
STAN-CS-76-561(hardcopy) WOODS,MATH PROG LANGUAGE: USER'S GUIDE
STAN-CS-76-561(microfiche) WOODS,MATH PROG LANGUAGE: USER'S GUIDE
STAN-CS-76-562(microfiche) KNUTH,TRABB PARDO,EARLY DEVEL OF PROG LANGUAGES
AIM-283(microfiche) DAVIS,APPL OF META KNOWLEDGE TO LARGE KNOWLG BASES(THESIS)




CHARLES A. STEELE, JR.                      #019SE
NORMAN AVE.                                       
MAGNOLIA, MASSACHUSETTS  01930                    


≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

SUBJECT: REPORT ORDER				9 OCT 1976

     TO: PROF. PETER KUGEL


   FROM: LIBRARY AND PUBLICATIONS COMMITTEE
	 COMPUTER SCIENCE DEPARTMENT
	 STANFORD UNIVERSITY
	 STANFORD, CA 94305 USA

The following reports that you have ordered are enclosed with this invoice:

STAN-CS-76-562(hardcopy) KNUTH,TRABB PARDO,EARLY DEVEL OF PROG LANGUAGES    $ 3.50

The cost of these reports is $ 3.50. Please make your check payable to
`CSD Stanford University' and return it with the invoice at the bottom of 
this memo.

------------------------------- INVOICE -------------------------------------------

						AMOUNT DUE $ 3.50

					  PAYMENT ENCLOSED $________

PAYMENT FOR ACCOUNT OF

PROF. PETER KUGEL                           #021FG
COMPUTER SCIENCE PROGRAM                          
BOSTON COLLEGE                                    
CHESTNUT HI11, MASSACHUSETTS  02167               



PLEASE MAKE CHECK PAYABLE TO CSD STANFORD UNIVERSITY.
(Note: Overpayments are welcome. They will be credited to your account and
deducted from the cost of future reports you order.)
FORWARD PAYMENT AND INVOICE TO     VICKI L. FAHRENHOLZ
				   COMPUTER SCIENCE DEPT.
				   STANFORD UNIVERSITY
				   STANFORD CA 94305 USA

⊗ → → → IT IS IMPORTANT THAT THIS INVOICE BE RETURNED WITH YOUR PAYMENT ← ← ← ⊗
File BILLS.TMP after that dialog contains similar but more varied invoices:

SUBJECT: REPORT ORDER				9 OCT 1976

     TO: A. CUSTOMER


   FROM: LIBRARY AND PUBLICATIONS COMMITTEE
	 COMPUTER SCIENCE DEPARTMENT
	 STANFORD UNIVERSITY
	 STANFORD, CA 94305 USA

The following reports that you have ordered are enclosed with this invoice:

STAN-CS-66-038(microfiche) MCCARTHY,PAINTER,CORRECTNESS OF A COMPILER
STAN-CS-68-100(hardcopy) BREDT,MODEL OF INFORM. PROC. IN CHILDREN




A. CUSTOMER
UNIVERSITY OF PEKING
CHINA
SUBJECT: REPORT ORDER				9 OCT 1976

≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

     TO: B. CUSTOMER


   FROM: LIBRARY AND PUBLICATIONS COMMITTEE
	 COMPUTER SCIENCE DEPARTMENT
	 STANFORD UNIVERSITY
	 STANFORD, CA 94305 USA

We are sorry that the following reports you have ordered are out of stock:

STAN-CS-68-100(hardcopy) BREDT,MODEL OF INFORM. PROC. IN CHILDREN
STAN-CS-69-121(microfiche) MOLER,EIGENVALUES OF LAPLACIAN,RHOMBICAL DOM

Stanford Ph.D. theses may be obtained from University Microfilms,
300 North Zeeb Road, Ann Arbor MI 48106; and other reports of our department
are usually obtainable from the National Technical Information Service,
5285 Port Royal Road, Springfield VA 22151. It generally takes a few
months after publication before the reports are available from these sources.

The following reports that you have ordered are enclosed with this invoice:

STAN-CS-66-038(microfiche) MCCARTHY,PAINTER,CORRECTNESS OF A COMPILER
STAN-CS-69-121(hardcopy) MOLER,EIGENVALUES OF LAPLACIAN,RHOMBICAL DOM  $ 2.20

The cost of these reports is $ 2.20. Please make your check payable to
`CSD Stanford University' and return it with the invoice at the bottom of 
this memo.

------------------------------- INVOICE -------------------------------------------

						AMOUNT DUE $ 2.20

					  PAYMENT ENCLOSED $________

PAYMENT FOR ACCOUNT OF

B. CUSTOMER
US DEPT OF DEFENSE
WASHINGTON DC 00000

PLEASE MAKE CHECK PAYABLE TO CSD STANFORD UNIVERSITY.
(Note: Overpayments are welcome. They will be credited to your account and
deducted from the cost of future reports you order.)
FORWARD PAYMENT AND INVOICE TO     VICKI L. FAHRENHOLZ
				   COMPUTER SCIENCE DEPT.
				   STANFORD UNIVERSITY
				   STANFORD CA 94305 USA

⊗ → → → IT IS IMPORTANT THAT THIS INVOICE BE RETURNED WITH YOUR PAYMENT ← ← ← ⊗

≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

SUBJECT: REPORT ORDER				9 OCT 1976

     TO: ZDENEK ZDRAHAL


   FROM: LIBRARY AND PUBLICATIONS COMMITTEE
	 COMPUTER SCIENCE DEPARTMENT
	 STANFORD UNIVERSITY
	 STANFORD, CA 94305 USA

The following reports that you have ordered are enclosed with this invoice:

STAN-CS-69-121(microfiche) MOLER,EIGENVALUES OF LAPLACIAN,RHOMBICAL DOM




ZDENEK ZDRAHAL                              #CZENZ
DEPT. OF CONTROL                                  
TECH. UNIV. OF PRAGUE                             
KARLOVA NAM. 13                                   
121 35 PRAHA 2, CZECHOSLOVAKIA                    


≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

SUBJECT: REPORT ORDER				9 OCT 1976

     TO: PROF. A.R. MITCHELL


   FROM: LIBRARY AND PUBLICATIONS COMMITTEE
	 COMPUTER SCIENCE DEPARTMENT
	 STANFORD UNIVERSITY
	 STANFORD, CA 94305 USA

We are sorry that the following reports you have ordered are out of stock:

STAN-CS-69-123(hardcopy) MITCHELL,MCCRAITH,VARIANTS OF GRAM-SCHMIDT

Stanford Ph.D. theses may be obtained from University Microfilms,
300 North Zeeb Road, Ann Arbor MI 48106; and other reports of our department
are usually obtainable from the National Technical Information Service,
5285 Port Royal Road, Springfield VA 22151. It generally takes a few
months after publication before the reports are available from these sources.




PROF. A.R. MITCHELL                         #SCOFM
DEPT. OF MATHEMATICS                              
UNIVERSITY OF DUNDEE                              
DUNDEE, SCOTLAND                                  



≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡ new page ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡

SUBJECT: REPORT ORDER				9 OCT 1976

     TO: DR. JAMES MITCHELL


   FROM: LIBRARY AND PUBLICATIONS COMMITTEE
	 COMPUTER SCIENCE DEPARTMENT
	 STANFORD UNIVERSITY
	 STANFORD, CA 94305 USA

The following reports that you have ordered are enclosed with this invoice:

STAN-CS-69-123(hardcopy) BRENT,DISTR OF SMALL PRIME GAPS  $ 2.25

(California sales tax has been included in the above charges.)

The cost of these reports is $ 2.25. Please make your check payable to
`CSD Stanford University' and return it with the invoice at the bottom of 
this memo.

------------------------------- INVOICE -------------------------------------------

						AMOUNT DUE $ 2.25

					  PAYMENT ENCLOSED $________

PAYMENT FOR ACCOUNT OF

DR. JAMES MITCHELL                          #943AI
XEROX                                             
3333 COYOTE HILL RD.                              
PALO ALTO, CALIFORNIA  94304                      



PLEASE MAKE CHECK PAYABLE TO CSD STANFORD UNIVERSITY.
(Note: Overpayments are welcome. They will be credited to your account and
deducted from the cost of future reports you order.)
FORWARD PAYMENT AND INVOICE TO     VICKI L. FAHRENHOLZ
				   COMPUTER SCIENCE DEPT.
				   STANFORD UNIVERSITY
				   STANFORD CA 94305 USA

⊗ → → → IT IS IMPORTANT THAT THIS INVOICE BE RETURNED WITH YOUR PAYMENT ← ← ← ⊗